package Interface;

/*
    问题描述：定义Person的年龄时，无法阻止不合理的数值被设置进来。
    解决方案：用private关键字将需要保护的成员变量进行修饰。

    一旦使用了private进行修饰，那么本类当中仍然可以随意访问。
    但是！超出了本类范围之外就不能再直接访问了。

    间接访问private成员变量，就是定义一对儿Getter/Setter方法
 */
public class Person {

    public String name; // 姓名
    private int age; // 年龄

    public void show() {
        System.out.println("我叫：" + name + "，年龄：" + age);
    }

    //设置参数数据
    public void setAge(int age) {
        this.age = age;
    }

    // 获取参数数据
    public int getAge() {
        return age;
    }


    /*
      this用法:
        当方法的局部变量和类的成员变量重名的时候，根据“就近原则”，优先使用局部变量。
        如果需要访问本类当中的成员变量，需要使用格式：
        this.成员变量名
     */
    public void sayHello(String name) {
        System.out.println(name + "，你好。我是" + this.name);
        System.out.println(this);  //打印地址值
    }
}
